1. Field of the Invention
The present invention relates generally to electronic computer systems, and more specifically to a system and method for controlling graphics displays for computer systems.
2. Description of the Prior Art
Graphical user interfaces are becoming increasingly common in the computer industry. These interfaces typically use various types of images and graphics to convey information to users more quickly and clearly than text based interfaces. Many such interfaces allow multiple, often overlapping, windows representing separate applications or separate parts of the same application, allowing a user to monitor the activities of several programs at once.
Driving such graphical interfaces places heavy demands on the processors involved. In addition to the fact that several applications are often running simultaneously, the use of overlapping windows means that display subsystems must constantly monitor those portions of each window which are visible to the user. Manipulation of bit mapped graphics on a high resolution display, often in color, requires a large number of processor cycles even for relatively simple tasks. As a result, high performance processors are required to control complex graphics displays.
Systems which are not specifically designed to support high resolution graphical displays can suffer performance degradation when driving such displays. This becomes especially true when such systems are required to support multiple displays simultaneously. The amount of processing required simply to support basic functions on multiple graphical displays simultaneously can tax the resources of even a high performance processor, leaving little or no time for the execution of basic processing functions. This greatly degrades the overall performance of such systems.
In order to increase programmer productivity and portability of applications, numerous graphical display interfaces are in the process of being standardized. One increasingly popular graphical display standard is known as X Windows. X Windows has initially been implemented on UNIX(tm) and compatible operating systems. As such, X Windows is designed to be highly portable across computer systems having widely different architectures and different manufacturers.
X Windows is defined so as to be easily implemented over a local area network. This allows applications to execute on one machine, while the graphical user interface runs on a separate, physically remote, machine or terminal. The formal definition of the X Windows system changes from time to time under the control of an association of major computer manufacturers who support the X standard. Literature describing the X Windows system and its implementations is voluminous, and one document which explains the X Windows environment is X WindowSystem, 2d edition, R. W. Scheifler and J. Gettys, Digital Press, 1990.
X Windows works well with a network of full featured, high performance graphical work stations which have their own operating systems and can run applications. This is, in fact, the environment for which it was designed. An alternative system which could make good use of the graphical X Windows interface would be one which has a large central system, and relatively simple graphical terminals connected to the central system over a network. This arrangement concentrates much of the processing power in one location, and allows additional users to be added to the network for a relatively small incremental cost. Once the system is in place, the incremental cost for adding a user is much less than that for providing each new user with a fully featured graphical work station.
One important drawback to the use of a central system is that the processing demand on the main central system is quite high due to the large number of graphical terminals which are supported. In addition to the burden of executing a larger number of application programs simultaneously, a heavy processing burden must be carried by the central system simply to support the X Windows graphical interface for the terminals. If more than a very small number of graphical terminals are executing simultaneously using the resources of a main central processor, overall performance of such a processor can be severely degraded.
A single central system driving a number of terminals over a network could be a cost effective alternative to a network of fully featured work stations. However, such a system will only be feasible if the needed performance can be achieved. Such a centralized system is quite flexible, since fully featured work stations can be attached to the network as well as graphical terminals.
It would therefore be desirable to provide a system capable of supporting multiple graphic sessions on remote terminals or other devices over a network. It would be further desirable for such a system to be compatible with X Windows or a similar widely available standard interface. It is highly desirable that such a system provide acceptable performance while driving a relatively large number of graphical terminals.